#ifndef SEGMENTO2D_H
#define SEGMENTO2D_H

#include "geometria_global.h"
#include "recta2d.h"

class GEOMETRIA_EXPORT Segmento2d
{
public:
    Segmento2d();
    Segmento2d(Punto2d p1, Punto2d p2);
    Segmento2d(int x1, int y1, int x2, int y2);
    Segmento2d(Punto2d p1, Vector2d direccion);
    QString toString() const;
  
    void setP1(Punto2d p1);
    void setP2(Punto2d p2);

    Punto2d getP1() const;
    Punto2d getP2() const;

    Recta2d getRecta() const;
    Punto2d getCentro() const;

    bool contiene(Punto2d punto) const;

    void desplazar(double dx, double dy);

    void girar(Angulo angulo);

    Punto2d interseccion(const Segmento2d& otroSegmento) const;
    Punto2d interseccion(const Recta2d& recta) const;
 
private:
    Punto2d p1;
    Punto2d p2;
};

#endif // SEGMENTO_H
